//
//  QQViewController.m
//  QQ好友列表
//
//  Created by Jorn.Wu on 15/5/26.
//  Copyright (c) 2015年 Jorn.Wu. All rights reserved.
//

#import "QQViewController.h"
#import "FriendsGroupModel.h"
#import "FriendsModel.h"
#import "HeaderView.h"


@interface QQViewController ()

@property (nonatomic, strong) NSArray *qqArr;//qq列表

@end

@implementation QQViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;//清除分割线
    
    //    // Do any additional setup after loading the view, typically from a nib.
    ////    self.view = [[UITableView alloc]init];
    //
    //    /* frame 是动态的时候 最好不要用这种方法，应该调用代理方法 */
    ////    self.tableView.rowHeight = 44;
    ////    self.tableView.sectionHeaderHeight = 44;
    ////    self.tableView.sectionFooterHeight = 44;
    //    [self qqArr];
    //
}

//隐藏状态栏
- (BOOL)prefersStatusBarHidden{
    return YES;
}
//  设置header的title
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    FriendsGroupModel *fgModel = self.qqArr[section];
    return fgModel.name;//设置组名
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return 44;//设置header的高度
}

- (NSArray *)qqArr{
    //    self.qqArr = [[NSArray alloc]init];
    if (_qqArr == nil) {
        NSArray *arr = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"friends" ofType:@"plist"]];//存放文件信息
        //        NSLog(@"%@",arr);
        
        NSMutableArray *friendsArray = [NSMutableArray array];
        for (NSDictionary *dict in arr) {
            FriendsGroupModel *fgModel = [FriendsGroupModel friendsGroupWithDict:dict];//临时组model
            [friendsArray addObject:fgModel];
            
        }
        self.qqArr = friendsArray;//传到qq列表里去
        //        [self setValue:friendsArray forKey:@"_qqArr"];
    }
    return _qqArr;
}

#pragma mark - 数据源方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    //取出第section组这个model；
    FriendsGroupModel *fgModel = self.qqArr[section];
    
    return fgModel.open ? fgModel.friends.count : 0;//还要根据open来判断张合；
    
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return self.qqArr.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *ID = @"friends";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    
    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
        cell.backgroundColor = [UIColor clearColor];//去掉颜色，显示背景色
    }
    //取出当前section的model
    FriendsGroupModel *fgModel = self.qqArr[indexPath.section];
    //取出当前这个model中的row行
    FriendsModel *fModel = fgModel.friends[indexPath.row];//某人这个model
    
    cell.textLabel.text = fModel.name;
    
    cell.textLabel.textColor = fModel.vip ? [UIColor redColor] : [UIColor blackColor];//vip显示为红色
    
    cell.imageView.image = [UIImage imageNamed:fModel.icon];
    
    return cell;
}
//  返回一个header给tablview的header显示（都是view）
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{//header自带的View
    HeaderView *header = [HeaderView headerViewWith:tableView];//包装了类创建方法
    FriendsGroupModel *fgModel = self.qqArr[section];
    header.fgModel = fgModel;//把model也传过去，用于设置
    
    
    //sender 是传过来的参数， {} 里面是作相应的操作
    header.block = ^(id sender){
        [tableView reloadData];//利用block传这个方法跟新列表
    };
    //    这个方法也可以用通知或代理来实现
    
    return header;
    
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end
